gusucode.com > 支持向量机工具箱 - LIBSVM OSU_SVM LS_SVM源码程序 > 支持向量机工具箱 - LIBSVM OSU_SVM LS_SVM\LS_SVMlab\lssvmFILE.m
function model = lssvmFILE(model, filename) % Only for intern use of LS-SVMlab; % % calculate LS-SVM in performant C code; % the parameters are given to the independent c-program by means of % a file; This ensures robustness in future MATLAB versions. % % model = lssvmFILE(model, filename) % % WARNING: CHECK IF THE EXECUTABLE 'lssvmFILE.x' IS IN THE CURRENT % DIRECTORY. % % for use, see trainlssvm % % Copyright (c) 2002, KULeuven-ESAT-SCD, License & help @ http://www.esat.kuleuven.ac.be/sista/lssvmlab % % change to dir ~/matlab % or_dir = pwd; %cd ~/matlab/; % save the parameters to file fid=fopen(filename,'wb'); fwrite(fid,model.type(1),'char'); fwrite(fid,model.nb_data,'int'); fwrite(fid,model.x_dim ,'int'); fwrite(fid,model.y_dim,'int'); fwrite(fid,length(model.kernel_pars) ,'int'); for t=1:length(model.kernel_pars), fwrite(fid,model.kernel_pars(t) ,'double'); end lk = length(model.kernel_type); fwrite(fid,lk,'int'); fprintf(fid,'%s',model.kernel_type); eval('dyn_pars = [model.steps; model.x_delays];','dyn_pars=[];'); eval('dyn_pars = [dyn_pars;model.y_delays];',' '); fwrite(fid,length(dyn_pars) ,'int'); for t=1:length(dyn_pars), fwrite(fid,dyn_pars(t) ,'int'); end fwrite(fid,model.gam,'double'); fwrite(fid,model.cga_eps ,'double'); fwrite(fid,model.cga_fi_bound ,'double'); fwrite(fid,model.cga_max_itr ,'int'); for i=1:model.nb_data for j=1:model.x_dim fwrite(fid,model.xtrain(model.selector(i),j), 'double'); end end for i=1:model.y_dim for j=1:model.nb_data fwrite(fid,model.ytrain(model.selector(j),i), 'double'); end end eval('model.cga_startvalues;','model.cga_startvalues=[];'); fwrite(fid,length(model.cga_startvalues) ,'int'); for i=1:length(model.cga_startvalues), fwrite(fid,model.cga_startvalues(i), 'double'); end fwrite(fid,model.cga_show, 'int'); fclose(fid); % Compute alpha & b eval(['!lssvmFILE.exe ' filename],'warning(CHECK IF THE EXE ''lssvmFILE.x'' is in the current directory'); %Read the result from mofe.out fid=fopen(filename,'r'); model.nb_data = fread(fid,1,'int'); model.y_dim = fread(fid,1,'int'); model.b = fread(fid,model.y_dim,'double'); model.alpha = fread(fid,model.y_dim*model.nb_data,'double'); model.alpha = reshape(model.alpha,length(model.alpha)/model.y_dim, model.y_dim); ssv = fread(fid,1,'int'); model.cga_startvalues = fread(fid,ssv,'double'); fclose(fid); cd(or_dir);